import Vue from 'vue'
import App from './App'
// 引入全局组件TypeNav
import TypeNav from '@/components/TypeNav'
// 引入路由
import router from '@/router'
// 引入vuex
import store from '@/store'
// 引入swiper插件样式 可以全局使用
import 'swiper/css/swiper.css'
// 配置生产环境
Vue.config.productionTip = false
// 引入相关的mock数据文件  最先执行一次
import '@/mock/serve'
// 注册商品展示列表全局组件
Vue.component('TypeNav',TypeNav)
// 引入全局组件
import Carousel from '@/components/Carousel'
// 注册轮播图全局组件
Vue.component(Carousel.name, Carousel)
// 引入并注册分页器全局组件
import Pagination from '@/components/Pagination'
Vue.component(Pagination.name, Pagination)

// 在入口文件引入全部的全部请求函数 引入的是一个对象,包含所有的请求函数
import * as API from '@/api' 
// console.log(API)  

// 创建Vue实例对象
new Vue({
  render: h => h(App),
  // 配置全局事件总线
  beforeCreate(){
    // 配置全局的事件总线
    Vue.prototype.$eventBus = this;
    // 把全部的请求函数，作为Vue.prototype的属性  组件实例都可以拿到
    // 好处:请求函数只需要注册一次 可以在组件当中使用
    Vue.prototype.$API = API;
  },
  // 路由组件
  router,
  // vuex数据仓库
  store
}).$mount('#app')
